package cn.zqy.demo2.day04.demo01;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * Map集合遍历的第二种方式:使用Entry对象遍历
 *
 *     Map集合中的方法:
 *         Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射关系的 Set 视图。
 *
 *     实现步骤:
 *         1.使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中
 *         2.遍历Set集合,获取每一个Entry对象
 *         3.使用Entry对象中的方法getKey()和getValue()获取键与值
 * */
public class Demo03EntrySet {
    public static void main(String[] args) {
        Map<String,Integer> map = new HashMap<>();
        map.put("aaa",1);
        map.put("bbb",2);
        map.put("ccc",3);
        map.put("ddd",1);
        map.put("eee",4);
        System.out.println(map);

        // 把Map集合中多个Entry对象取出来,存储到一个Set集合中
        Set<Map.Entry<String, Integer>> set = map.entrySet();

        //2.遍历Set集合,获取每一个Entry对象， 迭代器类型和set里面类型一致
        Iterator<Map.Entry<String, Integer>> ll = set.iterator();


        while (ll.hasNext()) {
            Map.Entry<String, Integer> next = ll.next();
            System.out.println(next.getKey() + " = " + next.getValue());
        }

        for (Map.Entry<String, Integer> i:set) {
            System.out.println(i.getKey() + " = " + i.getValue());
        }
    }
}
